AmneziaWG

AmneziaWG — это форк [WireGuard-Go], который унаследовал простоту архитектуры и высокую производительность оригинала, но избавился от характерных сетевых «подписей», благодаря которым WireGuard легко определяется системами DPI (Deep Packet Inspection).
Версия 1.5 выводит маскировку на новый уровень: теперь трафик можно маскировать под наиболее распространённые UDP‑протоколы (QUIC, DNS и др.), полностью сливаясь с обычным интернет‑трафиком.
Прародитель AmneziaWG — WireGuard зарекомендовал себя как быстрый и надежный VPN-протокол благодаря компактному коду и высокой эффективности. Однако его фиксированные заголовки пакетов и предсказуемые размеры образуют легко узнаваемую сигнатуру. DPI‑системы без труда идентифицируют такие пакеты и могут мгновенно разрывать соединение — серьёзная проблема в странах с интернет-цензурой.
AmneziaWG 1.5 решает эту проблему через многоуровневую обфускацию на транспортном уровне: модифицирует заголовки пакетов, рандомизирует размеры handshake-сообщений и позволяет маскировать трафик под популярные UDP‑протоколы. При этом базовое криптографическое ядро WireGuard остается неизменным, сохраняя его производительность и безопасность.
Ключевые преимущества
- Невидимость для DPI — динамические заголовки и рандомизация размеров пакетов.
- Маскировка протоколов — имитация QUIC, DNS, SIP и других UDP-протоколов.
- Высокая производительность — работает как модуль ядра Linux, а шифрование использует однопроходный AEAD-алгоритм ChaCha20‑Poly1305 с SIMD‑оптимизацией, что и у WireGuard.
- Энергоэффективность — код на Go исполняется в пользовательском пространстве без тяжёлых шифров, то есть подходит для мобильных устройств и роутеров.
- Кроссплатформенность — поддержка всех основных операционных систем.
- UDP‑транспорт — весь трафик передаётся поверх UDP, что упр�ощает обход блокировок и снижает задержку.
- Простота настроек — настроек — достаточно указать сигнатуру маскировочного протокола; остальные параметры заполняются автоматически.
- Обратная совместимость — при отключенных механизмах маскировки клиент полностью совместим с обычным WireGuard.
Как это работает
Ниже — шаг за шагом о том, как AmneziaWG 1.5 превращает классический WireGuard‑трафик в неуловимый поток UDP‑пакетов.
- Динамические заголовки всех типов пакетов
При инициализации туннеля библиотека генерирует набор случайных констант, который применяется к каждому из четырёх форматов пакета WireGuard: Init, Response, Data и Under‑Load. Эти значения:
- подставляются вместо предсказуемых идентификаторов пакетов WireGuard;
- сдвигают оффсеты полей Version/Type;
- изменяют зарезервированные биты.
Таким образом, у двух разных клиентов не бывает совпадающих заголовков — универсальное DPI‑правило написать невозможно.
- Рандомизация длины handshake
В WireGuard пакет Init занимает ровно 148 байт, Response — 92 байта. AmneziaWG добавляет к ним псевдослучайные префиксы S1 и S2 (0–64 байта по умолчанию):
len(init) = 148 + S1
len(resp) = 92 + S2
Смещение остальных полей корректируется автоматически, MAC‑теги пересчитываются.
- Маскировочные пакеты I1–I5 (Signature Chain) и CPS (Custom Protocol Signature)
Перед «специальным» рукопожатием (каждые 120 секунд) клиент может послать до
пяти разных UDP‑пакетов, полностью описанных пользователем в формате CPS.
Главный элемент — I1 — содержит hex‑снимок реального протокола (например,
QUIC Initial handshake), который также можно рандомизировать. Остальные I2–I5
наращивают энтропию за счёт счётчика, метки времени и случайных данных.
Данный формат мы назвали CPS — Custom Protocol Signature:
Типы тегов
| Тег | Формат | Описание | Ограничения |
|---|---|---|---|
| b | <b hex_data> | Статические байты для имитации протоколов | Произвольная |
| длина | |||
| c | <c> | Счетчик пакетов (32-bit, network byte order) | Уникален в рамках |
| последовательности | |||
| t | <t> | Unix timestamp (32-bit, network byte order) | Уникален в рамках |
| последовательности | |||
| r | <r length> | Криптостойкие случайные байты | length ≤ 1000 |
Пример CPS-пакета
i1 = b 0xf6ab3267facb 0xf6atr 10
Важно: Если параметр I1 отсутствует, то вся цепочка (I2-I5) пропускается и AmneziaWG ведёт себя как AmneziaWG 1.0 — это упрощает совместимость.
- Junk‑train (Jc)
Сразу после цепочки I‑пакетов отправляется Jc псевдослучайных пакетов длиной от Jmin до Jmax. Они размывают начало сессии во времени и по габаритам, ещё сильнее затрудняя определение handshake.
- Пакет Under‑Load
В WireGuard специальный keep‑alive‑пакет («Under-Load») используется для обхода NAT‑тайм‑аутов. AmneziaWG заменяет его фиксированный header на рандомный, причём значение можно задать вручную в GUI. Это не позволяет DPI фильтровать короткие ping‑пакет, сохраняя стабильность туннеля в мобильных сетях.
- UDP‑транспорт без изменений шифрования
На уровне криптографии AmneziaWG идентичен WireGuard: Curve25519, ChaCha20‑Poly1305 и двусторонний key‑rotation. Обфускация работает строго на транспортном уровне; payload остаётся полностью совместимым с оригинальным протоколом. В AmneziaWG изменены заголовки всех пакетов.
Итого: DPI видит хаотичную последовательность UDP‑пакетов с непредсказуемыми заголовками, размазанным handshake и уникальной сигнатурой пользователя. При этом по скорости и надёжности туннель практически не отли�чается от WireGuard.
Параметры конфигурации
| Параметр | Диапазон | Назначение |
|---|---|---|
| I1-I5 | arbitrary hex‑blob | Сигнатурные пакеты для имитации протоколов |
| S1, S2 | 0-64 байта | Случайные префиксы для Init/Response пакетов |
| Jc | 0-10 | Количество junk-пакетов после I1‑I5 |
| Jmin, Jmax | 64-1024 байта | Диапазон случайного размера junk‑пакетов |
При нулевых значениях всех параметров поведение идентично WireGuard — это облегчает «мягкий» переход.
Безопасность
AmneziaWG 1.5 не меняет криптографию WireGuard, а значит наследует его доказанную безопасность (протокол обмена ключами Noise_IK с Curve25519, AEAD ChaCha20‑Poly1305). Маскировочные поля подписываются теми же MAC‑тегами, что и основные заголовки.
Аудит безопасности: Поскольку криптографическое ядро не изменено, применимы все существующие анализы безопасности WireGuard.
Дальнейшие шаги
Подробные инструкции по развертыванию и настройке:
Дополнительные ресурсы
- Основной репозиторий AmneziaWG
- Инструменты для AmneziaWG
- Android GUI для AmneziaWG
- Встраиваемая библиотека туннелирования AmneziaWG для Windows
- AmneziaWG для iOS и macOS
Нативные клиенты AmneziaWG
Конфигурации можно использовать не только в AmneziaVPN, но и в специализированных клиентах:
Установка AmneziaWG через консоль
- Установка AmneziaWG и других нужных утилит на VDS-сервере
- Установка AmneziaWG на Android-устройстве
- Установка AmneziaWG на OpenWRT-устройстве
Предыдущая страницаПоддерживаемые операционные системы Linux для VPSСледующая страницаАльтернативные клиенты
Обращайтесь в чат за помощью, если что-то не получается
- Ключевые преимущества
- Как это работает
- Параметры конфигурации
- Безопасность
- Дальнейшие шаги
- Дополнительные ресурсы
Продукты
Amnezia PremiumAmnezia Free[Amnezia Self-hosted](https://amnezia.org/self- hosted)
Ресурсы
ДокументацияРешение проблемFAQ
Контакты
[Github](https://github.com/amnezia-vpn/amnezia- client)TelegramReddit
